/**
 * @addtogroup brd_wdog
 * brd_wdog
 * @{
 */
/**
 * @file brd_wdog.h
 * @brief 看门狗板级层
 * @par 修改日志
 * <table>
 * <tr><th>Date <th>Version <th>Author <th>Description
 * <tr><td>2020-10-19 <td>1.0 <td>软件工程院 <td>创建初始版本
 * @par 示例
 * @code
 * 使用电源模式切换设备. 
   ...
   // 应用中嵌入
   Brd_WDogFeed();
   // 需要系统软复位时
   Brd_WDogTriggerSystemSoftwareReset();
   ...
 * @endcode 
 * @copyright 杭州鸿泉物联网技术股份有限公司
 */
#ifndef _BRD_WATCHDOG_H_
#define _BRD_WATCHDOG_H_

#include <ofc_types.h>

#ifdef __cplusplus
extern "C" {
#endif

/**
 * 打开看门狗
 * @note 相关说明请参考[brd_def](@ref Brd_TWDogIdTag)注释部分
 * @param timeout: 看门狗超时时间, 取值范围及实际超时时间, 参考[brd_def](@ref Brd_TWDogIdTag)
 *     -# 当超过最大范围值, 取最大超时时间
 * @return 无返回值
 */
void Brd_WDogOpen(UInt8 timeout);

/**
 * 关闭看门狗
 * @note 相关说明请参考[brd_def](@ref Brd_TWDogIdTag)注释部分
 * @return 无返回值
 */
void Brd_WDogClose(void);

/**
 * 喂看门狗
 * @note 必须在2秒内进行喂狗操作, 否则系统将复位
 * @return 无返回值
 */
void Brd_WDogFeed(void);

/**
 * 触发系统软件复位
 * @note 使用本函数会立即触发系统复位, 请注意
 * @return 无返回值
 */
void Brd_WDogTriggerSystemSoftwareReset(void);


#ifdef __cplusplus
}  ///< extern "C"
#endif

#endif // _BRD_WATCHDOG_H_
/**
 * @} 
 */
